/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entities.questionnaire;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author loic.vaugeois
 */
@Entity
@Table(name="apparence")
@NamedQueries({
@NamedQuery(name = "Apparence.findAllApparence", query = "SELECT a FROM Apparence a")
})
public class Apparence implements Serializable{

/*
 *********************ATTRIBUTS
 */
    @Id
    @Column(name="id_apparence")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;


    /**
     * Nom de l'apparence
     */
    @Column(name="nom")
    private String nom;


    /**
     * URL l'apparence
     */
    @Column(name="url")
    private String url;


/*
 *********************GETTER SETTER
 */


    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        if (nom==null) throw new IllegalArgumentException("Le nom d'une Apparence ne peut être nulle");
        if (nom.isEmpty()) throw new IllegalArgumentException("Le nom d'une Apparence ne peut être vide");
        this.nom = nom;
    }


    public void setUrl(String url) {
        if (url==null) throw new IllegalArgumentException("L'url d'une Apparence ne peut être nulle");
        if (url.isEmpty()) throw new IllegalArgumentException("L'url d'une Apparence ne peut être vide");
        this.url = url;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }


    

/*
 *********************CONSTRUCTEURS
 */
    /**
     * Constructeur Apparence
     * @param nom
     * @param ListAttributGraphique
     */
    public Apparence(String nom, String url) {
        setNom(nom);
        setUrl(url);
    }

    /**
     * Constructeur nécessaire à JPA
     */
    public Apparence() {
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Apparence other = (Apparence) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 53 * hash + (int) (this.id ^ (this.id >>> 32));
        return hash;
    }

    @Override
    public String toString(){
        return getNom();
    }
    



}
